package com.yaozheng.vocationaltraining.service;

import com.yaozheng.vocationaltraining.iview.IVideoCoursewareOperatingView;
import com.yaozheng.vocationaltraining.iview.IVideoCoursewareView;

import net.sf.json.JSONObject;

public interface DownloadStatusListenerService {
	/**
	 * 暂停
	 */
	final int PAUSE_STATUS = 1;
	/**
	 * 取消
	 */
	final int CANCEL_STATUS = 2;

	/**
	 * 下载中
	 */
	final int DOWNLOAD_STATUS = 0;
	/**
	 * 下载成功
	 */
	final int DOWNLOAD_SUCCESS = 3;
	/**
	 * 下载失败
	 */
	final int DOWNLOAD_ERROR = 4;

	/**
	 * 得到任务状态
	 */
	int getTaskStatus();

	/**
	 * 设置任务状态
	 */
	void setTashStatus(int taskStatus);

	/**
	 * 暂停
	 */
	void pause();

	/**
	 * 取消
	 */
	void cancel();

	/**
	 * 继续下载
	 */
	void continueDownload();

	/**
	 * 开始下载
	 */
	void beginDownload();

	/**
	 * 下载成功
	 */
	void downloadSuccess();

	/**
	 * 下载错误
	 */
	void downloadError();

	/**
	 * 下载结束
	 * 
	 * @param runSuccess
	 *            是否成功
	 */
	void endDownload(boolean runSuccess);

	/**
	 * 下载状态改变
	 * 
	 * @param completionRate
	 *            完成率
	 * @return 是否继续执行true是
	 */
	boolean downloadStatusChange(double completionRate);

	/**
	 * 下载
	 */
	void download(JSONObject jsonObject);
	/**
	 * 初始化
	 * @param iVideoCoursewareView
	 */
	void init(IVideoCoursewareOperatingView iVideoCoursewareView);
}
